Java Technologies উদাহরণ সহ Expected Exception Handling গাইড ও নোট

330

TestNG-তে Expected Exception Handling ফিচারটি ব্যবহার করে টেস্ট কেসে একটি নির্দিষ্ট এক্সেপশন (Exception) ঘটবে বলে প্রত্যাশা করা হয় এবং টেস্ট কেসটি সেই এক্সেপশন পেলে পাস (Pass) করে। এটি সাধারণত নেগেটিভ টেস্টিং বা কোডের ব্যতিক্রমী পরিস্থিতি যাচাই করার জন্য ব্যবহৃত হয়।


Expected Exception Handling এর প্রয়োজনীয়তা

  • যখন টেস্ট কেসে একটি নির্দিষ্ট এক্সেপশন ঘটার সম্ভাবনা থাকে, তখন এই ফিচারটি ব্যবহার করা হয়।
  • এটি নিশ্চিত করে যে অ্যাপ্লিকেশন সঠিকভাবে ব্যতিক্রম (Exception) হ্যান্ডেল করছে কিনা।

Expected Exception Handling এর সিনট্যাক্স

TestNG-তে @Test অ্যানোটেশনের expectedExceptions অ্যাট্রিবিউট ব্যবহার করে এক্সেপশন হ্যান্ডল করা হয়।

@Test(expectedExceptions = Exception.class)
public void testMethod() {
    // Test code
}

উদাহরণ: Expected Exception Handling

উদাহরণ ১: ArithmeticException হ্যান্ডল করা

import org.testng.annotations.Test;

public class ExceptionHandlingExample {

    @Test(expectedExceptions = ArithmeticException.class)
    public void testDivisionByZero() {
        int result = 10 / 0; // This will throw ArithmeticException
        System.out.println("Result: " + result);
    }
}

বর্ণনা:

  • 10 / 0 কোডটি ArithmeticException তৈরি করবে।
  • যেহেতু এটি টেস্ট কেসে expectedExceptions = ArithmeticException.class ব্যবহার করা হয়েছে, তাই টেস্ট পাস করবে।

উদাহরণ ২: Custom Exception হ্যান্ডল করা

class CustomException extends Exception {
    public CustomException(String message) {
        super(message);
    }
}

import org.testng.annotations.Test;

public class CustomExceptionExample {

    @Test(expectedExceptions = CustomException.class)
    public void testCustomException() throws CustomException {
        throw new CustomException("This is a custom exception.");
    }
}

বর্ণনা:

  • এখানে কাস্টম এক্সেপশন CustomException তৈরি করা হয়েছে।
  • টেস্ট কেসে এটি প্রত্যাশা করা হয়েছে, তাই এটি পাস করবে।

Expected Exception Handling এর সাথে বার্তা যাচাই

TestNG শুধুমাত্র এক্সেপশন নয়, সেই এক্সেপশনের বার্তাও যাচাই করার সুযোগ দেয়।

উদাহরণ ৩: এক্সেপশনের বার্তা যাচাই

import org.testng.annotations.Test;

public class ExceptionMessageExample {

    @Test(expectedExceptions = ArithmeticException.class)
    public void testExceptionMessage() {
        try {
            int result = 10 / 0; // This will throw ArithmeticException
        } catch (ArithmeticException e) {
            assert e.getMessage().contains("/ by zero");
            throw e; // Re-throwing the exception for TestNG to handle
        }
    }
}

বর্ণনা:

  • assert e.getMessage().contains("/ by zero") দিয়ে এক্সেপশনের বার্তা যাচাই করা হয়েছে।
  • বার্তা মিলে গেলে এবং ArithmeticException ঘটলে টেস্ট পাস করবে।

Expected Exception Handling এর সীমাবদ্ধতা

  1. শুধুমাত্র নির্দিষ্ট এক্সেপশন যাচাই করা যায়।
  2. যদি এক্সেপশন না ঘটে, তবে টেস্ট ব্যর্থ হবে।
  3. এক্সেপশনের নির্দিষ্ট বার্তা যাচাই করতে হলে অতিরিক্ত লজিক প্রয়োজন।

Expected Exception Handling: সঠিক এবং ভুল উদাহরণ

সঠিক উদাহরণ:

@Test(expectedExceptions = NullPointerException.class)
public void testNullPointer() {
    String str = null;
    str.length(); // Throws NullPointerException
}

ভুল উদাহরণ:

@Test(expectedExceptions = ArithmeticException.class)
public void testWrongException() {
    int result = 10 / 2; // No exception occurs
    System.out.println("Result: " + result);
}

বর্ণনা:

  • এখানে কোনো এক্সেপশন ঘটেনি, তাই টেস্ট ব্যর্থ হবে।

Expected Exception Handling এর ব্যবহার ক্ষেত্র

  1. নেগেটিভ টেস্টিং: যেখানে কোডকে ভুল ইনপুট দিয়ে পরীক্ষা করা হয়।
  2. ইনপুট যাচাইকরণ: ব্যবহারকারীর অবৈধ ইনপুটে কীভাবে কোড কাজ করে তা যাচাই করা।
  3. ব্যতিক্রম হ্যান্ডলিং: কোড ব্যতিক্রমগুলোর জন্য সঠিক বার্তা বা আচরণ প্রদান করছে কিনা তা নিশ্চিত করা।

সারাংশ

TestNG-র Expected Exception Handling ফিচারটি টেস্টিং প্রক্রিয়াকে আরও শক্তিশালী করে। এটি নিশ্চিত করে যে কোড সঠিকভাবে এক্সেপশন হ্যান্ডেল করছে এবং প্রত্যাশিত পরিস্থিতিতে সঠিক ফলাফল দিচ্ছে। TestNG-তে expectedExceptions ব্যবহার করে সহজে এই ফিচারটি ব্যবহার করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...